制作方法
如何利用flash制作时钟?
制作思路:
要想制作指针式钟表,就要先制作电子表,利用系统函数获得当前的时间和日期,利用动态文本框显示变量值。然后分析秒针、分针、和时针的旋转角度与时间的关系,通过这个数学模型,我们就能做出双历指针式钟表。
具体步骤:
- 运行Flash8,
- 新建一个影片剪辑,在对话框中将其命名为“表盘”。
- 单击“确定”按钮后,进入编辑区。在其编辑区内绘制一个表盘。如下图所示:
- 再在该影片剪辑内部的时间轴中,再新建一个图层;用文本工具拖出三个动态文本框;变量名称为:“weeks”,“days”和“timebox”。如图所示:
- 返回到主场景中,利用对齐面板使表盘刚好处于舞台的中央位置。
- 在主场景中再新建三个图层,再分别新建三个影片剪辑放在三个不同的图层中,将图层名和影片剪辑的名称都分别命名为“时针”,“分针”,“秒针”。绘制三个指针的形状。注意指针的中心点的位置。如图所示:
小档案:绘制指针影片剪辑有一定的技巧,否则就会出错。新建一个图层,绘制一个中心点。同样利用对齐面板使之处于中央位置。注意,每个影片剪辑的中心点要与绘制的中心点重合。如图所示(下面展示的指针图片作了放大处理):
此时的时间轴如下图所示:
- 导入一段指针移动的模拟音乐。在声音文件的连接属性中选择“为动作脚本导出”,命名为“sound”。
- 新建一个影片剪辑,命名为“音乐”。 在第1帧添加as:stop(); 第2帧插入空白关键帧,添加as:
ss = new Sound();
ss.attachSound("sound");
ss.start();
ss.onSoundComplete = function() {
ss.start();
};//调用库中的声音文件sound
- 返回到主场景中,新建一个音乐图层,把“音乐”影片剪辑放置在场景的任何位置。在下面的属性面板中,命名为“777”。
- 分别选择“时针”,“分针”,“秒针”三个影片剪辑,在下面的属性面板中分别命名为“hourpoints”,“minutepoints”和“secondpoints”。
- 好了,准备工作已经完成了。
- 选中“表盘”影片剪辑,添加as语句:
onClipEvent (load) {
weekArray = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
//建立一个数组,共七个元素
timedate = new Date();
//建立一个新的时间对象
}
onClipEvent (enterFrame) {
week = timedate.getDay();
//返加0~6,0时取“星期日”;1时取“星期一”…….
weekday = weekArray[week];
//从数组中读取中文显示,参看上一句的解释
day = timedate.getDate();
//当前的日期,返回值为1~31
hour = timedate.getHours();
//当前的时,返回0~23
minute = timedate.getMinutes();
//当前的分,返回0~59
second = timedate.getSeconds();
//当前的秒,返回0~59
if (hour<10) {
hour = "0"+hour;
//如果时小于10,前面显示加“0”
}
if (minute<10) {
minute = "0"+minute;
//同上
}
if (second<10) {
second = "0"+second;
//同上
}
timebox = hour+" : "+minute+" : "+second;
//显示在动态文本框中
weeks = weekday;
//同上一句
days = day;
//同上一句
delete timedate;
//删除时间对象,目的是实时显示时间
timedate = new Date();
//新建时间对象
}
- 选中“时针”影片剪辑,添加as语句:
onClipEvent (enterFrame) {
hourangle = _root.clock.hour*30+_root.clock.minute/2;
//把钟表符号中的时针对应的角度值赋值给变量“hourangle”
setProperty("_root.hourpoints", _rotation, hourangle);
}
//设置分针的旋转角度
- 选中“分针”影片剪辑,添加as语句:
onClipEvent (enterFrame) {
minuteangle = _root.clock.minute*6;
//把钟表符号中的分针对应的角度值赋值给变量“minuteangle”
setProperty("_root.minutepoints", _rotation, minuteangle);
}
//设置分针的旋转角度
- 选中“秒针”影片剪辑,添加as语句:
onClipEvent (enterFrame) {
secondsangle = _root.clock.second*6;
//把钟表符号中的秒针对应的角度值赋值给变量“secondsangle”
setProperty("_root.secondpoints", _rotation, secondsangle);
}
//设置秒针的旋转角度
- 最后一步,别忘了把“表盘”影片剪辑的属性面板中的“实例名称”命名为“clock”。
- 一切OK了。
- 按组合键测试。
|